package cn.sc.summer.mybatis.table;

import cn.sc.summer.constant.mybatisplus.datasource.TableInfo;
import cn.sc.summer.constant.mybatisplus.datasource.TableInfoParam;
import cn.sc.summer.mybatis.model.DataSourceX;
import cn.sc.summer.mybatis.table.datasource.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

/**
 * 接口：数据源接口
 *
 * @author a-xin
 * @date 2024/8/27 09:34
 */
public interface TableService extends DataSource {

    /**
     * 获取指定数据库表信息
     *
     * @param jdbcTemplate jdbc连接
     * @return 数据库表信息
     */
    List<TableInfoParam> getTables(JdbcTemplate jdbcTemplate);

    /**
     * 获取指定数据库表信息
     *
     * @param dataSource 数据源信息
     * @return 数据库表信息
     */
    List<TableInfoParam> getTables(DataSourceX dataSource);

    /**
     * 获取数据库表字段信息
     *
     * @param jdbcTemplate jdbc连接
     * @return 对应表字段信息
     */
    List<TableInfo> getTableDetail(JdbcTemplate jdbcTemplate);

    /**
     * 获取数据库表字段信息
     *
     * @param dataSource 数据源信息
     * @return 对应表字段信息
     */
    List<TableInfo> getTableDetail(DataSourceX dataSource);

}
